package service.impl;
import dao.OrderDao;
import dao.impl.OrderDaoImpl;
import pojo.Goods;
import pojo.Order;
import pojo.User;
import service.OrderService;
import util.PageBean;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * 用户订单类Service接口类实现
 * @author 胡文摇
 */
public class OrderServiceImpl implements OrderService {
    OrderDao orderDao= new OrderDaoImpl();

    /**
     * 订单分页查询
     * @param pb 分页查询工具
     * @param ename 根据用户账号查询
     * @param state 根据订单状态查询
     */
    @Override
    public PageBean orderPageList(PageBean pb, String ename, int state) {
        pb.setTotalCount(orderCount(ename,state));
        pb=orderDao.orderPageList(pb,ename,state);
        return pb;
    }

    /**
     * 查询所有订单
     */
    @Override
    public List<Order> list() {
        return orderDao.list();
    }

    /**
     *  根据id查询订单
     * @param id 订单id
     * @return 返回结果
     */
    @Override
    public Order finaOrder(int id) {
        return orderDao.finaOrder(id);
    }
    /**
     * 根据用户id查询已完成订单
     * @param
     * @return 返回结果
     */
    @Override
    public List<Order> orderList() {
        return orderDao.orderList();
    }
    /**
     * 根据用户id查询已完成订单
     * @param id 用户id
     * @return 返回结果
     */
    @Override
    public Order finalOrder(int id) {
        return orderDao.finalOrder(id);
    }

    /**
     * 新增订单
     * @param order 订单对象
     * @return 返回结果
     */
    @Override
    public int InseOrder(Order order) {
        return orderDao.InseOrder(order);
    }
    /**
     * 修改订单
     * @param order 订单对象
     * @return 返回结果
     */
    @Override
    public int updaOrder(Order order) {
        return orderDao.updaOrder(order);
    }
    /**
     * 删除订单
     * @param id 订单id
     * @return 返回结果
     */
    @Override
    public int deleOrder(int id) {
        return orderDao.deleOrder(id);
    }
    /**
     * 统计订单总页数
     */
    @Override
    public int orderCount(String ename, int state) {
        return orderDao.orderCount(ename, state);
    }
    /**
     * 根据用户id查询用户信息
     * @param id 用户id
     * @return 返回结果
     */
    @Override
    public User finaUser(int id) {
        return orderDao.finaUser(id);
    }
    /**
     * 查询所有用户
     * @return 返回结果
     */
    @Override
    public List<User> userList() {
        return orderDao.userList();
    }

    /**
     * 根据商品id查询商品信息
     * @param id 商品id
     * @return 返回结果
     */
    @Override
    public Goods finaGoods(int id) {
        return orderDao.finaGoods(id);
    }
    /**
     * 查询所有商品
     * @return 返回结果
     */
    @Override
    public List<Goods> goodsList() {
        return orderDao.goodsList();
    }

    /**
     * 商品分页查询
     */
    @Override
    public PageBean goodsPageList(PageBean pb) {
        return pb;
    }
    /**
     * 根据用户账号查询用户对象
     * @param account 用户账号
     * @return
     */
    @Override
    public User userName(String account) {
        return orderDao.userName(account);
    }


}
